n=[8,3,7,6,2]
m=[7,4,2]
ans=[]
def fool(n:list):
    for i in m:
        for j in n:
            if i==j:
                ans.append(i)
                break
    
    return ans
    # 时间复杂度为O（NM）,当N和M都很大（10^5级别）时，显然是无法承受的.

def hashtable(n):
    an=[0]*100
    for i in n:
        an[i]=1
    for j in m:
        if an[j]:
            ans.append(j)

    return ans

#对M个欲查询的数，就能直接通过hashTable数组 判断出每个数是否出现过。显然这种做法的时间复杂度为O(N + M)
print(*fool(n))

print(*hashtable(n))

def pythonic():
    ans=set(n).intersection(set(m))
    print(*ans)

pythonic()